<?php
namespace system\core;

use system\libraries\Template;
use system\libraries\Translation;
use system\libraries\Session;

/**
 * Abstract Controller class
 * 
 * Every controller extends this class. They can use the property "load" to have
 * access to the loader object.
 * 
 * @author Steffen Brem <steffenbrem@gmail.com>
 * @package system.core
 */
abstract class Controller 
{
    /**
     * Loader
     * 
     * @var system\core\Loader 
     */
    protected $load;
    
    /**
     * Session
     * 
     * @var system\libraries\Session
     */
    protected $session;
    
    /**
     * Template
     * 
     * @var system\libraries\Template 
     */
    protected $template;
    
    /**
     * Translation
     * 
     * @var system\libraries\Translation 
     */
    protected $lang;
    
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->load     = new Loader();
        $this->session  = Session::getInstance();
        $this->template = Template::getInstance();
        $this->lang     = new Translation();
    }
}

/* End of file Controller.php */
